/**
 * 
 */
package paintservice;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileOutputStream;
import java.util.Hashtable;
import java.util.Vector;

import pojo.ClassEntity;
import pojo.Message;
import dao.RoomDao;
/**
 * @author peter
 * @date   2010-5-7
 */
public class PaintServiceImpl implements IPaintService {

	/* (non-Javadoc)
	 * @see chatservice.IPaintService#upLoadPicture(byte[], java.lang.String)
	 */
	private ClassEntity ce;
	private RoomDao rd;
	private static Hashtable<String,Vector<Message>> user_message=null;
	
	public  PaintServiceImpl()
	{
		ce=ClassEntity.getInstance();
		user_message=new Hashtable<String,Vector<Message>>();
		rd=new RoomDao();
	}
	
	public void graphMessage(Message message)
	{
		String fromname=message.getFrom_name();
		String roomname=message.getRoomname();
		int roomid=rd.getRoomId(roomname);
		Vector<Message> usermessage=null;//每个用户建立一个接受消息的Vector
		Vector<String>userlist=ce.getUserlist(roomid);//获得房间中的所有成员
		
//		System.out.println(fromname+" talk to all");
//		System.out.println("chat service roomid"+roomid);
//		System.out.println("chatservice call roomservice ");
		for(int i=0;i<userlist.size();i++)
		{
			if(!((userlist.get(i)).equals(fromname)))
			{
				if(user_message.containsKey(userlist.get(i)))//如果用户已经建立信息表
				{
					 usermessage=(Vector)user_message.get(userlist.get(i));//根据用户名得到用户接受的消息列表
					 usermessage.add(message);// 将新信息加入
				}else//如果用户还未建立信息表，则首先建立信息表
				{
					usermessage=new Vector<Message>();
					usermessage.add(message);
					user_message.put(userlist.get(i), usermessage);//每个用户维护一个自己的信息
				}
			}
		}
	}
	
	
	public void addMessage(Message message)
	{
		String username=message.getTo_name();//获得接收者名字
		Vector<Message> usermessage=null;//每个用户建立一个接受消息的Vector
		
		if(user_message.containsKey(username))//如果用户已经建立信息表
		{
			 usermessage=(Vector)user_message.get(username);//根据用户名得到用户接受的消息
			 usermessage.add(message);// 将新信息加入
		}else//如果用户还未建立信息表，则首先建立信息表
		{
			usermessage=new Vector<Message>();
			usermessage.add(message);
			user_message.put(username, usermessage);//每个用户维护一个自己的信息
		}
	}
	///得到某个用户的消息
	public Vector<Message>  getGraphMessage(String username)
	{
		Vector<Message> message=(Vector)user_message.get(username);
			return message;
	}

}
